The present invention relates generally to computer systems, and particularly to a system and method for protecting software in a voice mail server.
Data storage systems such as voice mail servers store and retrieve data such as phone messages for a large user base. This user base may consist of tens, hundreds or even thousands of users. Because the voice mail servers service a large user base, the voice mail servers must be capable of simultaneously storing and retrieving multiple phone messages. The voice mail server stores each phone message in a set of disks. Users periodically retrieve these stored phone messages through a user interface. This user interface provides the user with several options for handling the stored messages such as reviewing, forwarding, deleting, or keeping stored messages. Typically, the voice mail server has the ability to store dozens of messages for each user. In addition, a voice mail server servicing hundreds or thousands of users may, during peak usage, be required to simultaneously store many dozens of voice mail messages.
Each stored phone message occupies a significant amount of disk storage space. Consequently, a set of disk drives is provided that has a correspondingly large data storage capability. Typically, the disk drives are hard disk drives. When the voice mail server receives a voice message that is to be stored, the voice mail server selects a hard disk drive, and writes the voice message to the selected hard disk drive.
Typically, the voice mail server is implemented as an application program or a set of application programs. One of the hard disk drives is designated as a master disk which stores an operating system and the application program software. Depending on the system configuration, the master disk may also store voice mail messages.
In the voice mail server, each hard disk drive is associated with a unique disk drive serial number which is stored in a predetermined location on the hard disk drive.
In some applications, software is sold or licensed on a per-system basis. Typically, the software is distributed on removable media such as a floppy disk or CD-ROM. To secure the software from unauthorized use on a different system, the software distribution medium includes a list with the unique disk drive serial number for each hard disk drive of the system. When installing the software from the distribution medium, an installation procedure compares the unique disk drive serial number on the medium to the disk drive serial number of each hard disk drive in the system, including the master disk drive. The installation procedure installs the software only if every unique serial number on the distribution medium matches the disk drive serial number of a hard diskdrive in the system. If a serial number of a hard disk drive was not found, or if a hard disk drive had a serial number that was not on the medium, the software installation procedure will not install the software.
Hard disk drives fail and need to be replaced. Every time that a hard disk drive is replaced on a particular system, the vendor needs to update a list of disk drive serial numbers that will be stored on the software distribution medium. The serial number of the hard disk drive that was replaced needs to be removed, and the serial number of the replacement disk drive needs to be added. In addition, hard disk drives may be added to increase system capacity. When a hard disk drive is added, the serial number of the new disk drive needs to be added to the list. Maintaining the list of hard disk drives for each system is time-consuming and prone to error.
Other well-known methods of protecting software include issuing license keys that are checked at run-time on a particular computer; using keys that are available from a network server; providing physical hardware keys; and encrypting the program or critical call addresses in the program. These methods also have disadvantages. Checking license keys at run-time imposes overhead on the application. Program or call decryption during run-time imposes overhead on the application. Physical hardware keys can fail, become lost, or conflict with other hardware in the system. Because telephony applications operate in real-time, outages are unacceptable.
Therefore a system and method are needed that provides software security and simplifies administration of software distribution.
A system serial number secures software in a computer system. The system serial number is used to authenticate disk drives and software in a particular computer system having one or more fixed disk drives. Each fixed disk drive is configured with a predetermined system serial number, such that each fixed disk drive has the same predetermined system serial number. Software is received with an associated target serial number. The target serial number is compared to the predetermined system serial number on every fixed disk drive. The file is installed when the system serial number on every fixed disk drive is the same as the target serial number.
Alternately, the target serial number associated with the software is provided in an encrypted form, and the system serial numbers are stored in an encrypted form.
In another alternate embodiment, the system serial number is the same as the central processing unit (CPU) serial number.
In yet another alternate embodiment, a computer program product embodies the method of the present invention.
By providing a uniform system serial number for distributing new and upgraded software, the vendor""s administration efforts are reduced. By encrypting the serial number on the software distribution medium and on the hard disk drives, system security is further enhanced.